package com.leo.foodmaster.admin.system.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * <p>
 * 用户路由DTO
 * </p>
 *
 * @author ：Leo
 * @since ：2021-06-10 10:05
 */
@Data
@ApiModel("用户路由DTO")
public class Router {

    private Long id;
    /**
     * 设定路由的名字，一定要填写不然使用<keep-alive>时会出现各种问题
     */
    @ApiModelProperty("设定路由的名字，一定要填写不然使用<keep-alive>时会出现各种问题")
    private String name;

    /**
     * 路由地址
     */
    @ApiModelProperty("路由地址")
    private String path;

    /**
     * 菜单状态：当设置 true 的时候该路由不会再侧边栏出现 如401，login等页面，或者如一些编辑页面/edit/1
     */
    @ApiModelProperty("当设置 true 的时候该路由不会再侧边栏出现 如401，login等页面，或者如一些编辑页面/edit/1")
    private Boolean hidden;

    /**
     * 重定向地址，当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
     */
    @ApiModelProperty("重定向地址，当设置 noRedirect 的时候该路由在面包屑导航中不可被点击")
    private String redirect;

    /**
     * 组件地址
     */
    @ApiModelProperty("组件地址")
    private String component;

    /**
     * 当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式--如组件页面
     */
    @ApiModelProperty("当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式--如组件页面")
    private Boolean alwaysShow;

    /**
     * 路由名称
     */
    @ApiModelProperty("路由名称")
    private String title;

    /**
     * 设置该路由的图标，对应路径src/assets/icons/svg
     */
    @ApiModelProperty("设置该路由的图标，对应路径src/assets/icons/svg")
    private String icon;

    /**
     * 设置为true，则不会被 <keep-alive>缓存
     */
    @ApiModelProperty("设置为true，则不会被 <keep-alive>缓存")
    private Boolean noCache;

    /**
     * 是否为外链：默认为1（不是）0（是）
     */
    @ApiModelProperty("是否为外链：默认为1（不是）0（是）")
    private Boolean isFrame;

    /**
     * 子路由集合
     */
    @ApiModelProperty("子路由集合")
    private List<Router> children;

    /**
     * 路由其他属性
     */
    @ApiModelProperty("路由其他属性")
    private Meta meta;

}
